CHESS is a software model checker for finding errors/heisenbugs in multithreaded software by systematic exploration of thread schedules. It finds errors, such as data-races, deadlocks, livelocks, and data-corruption induced access violations, that are extremely hard to find with current testing tools. Once CHESS locates an error, it provides a fully repeatable execution of the program leading to the error, thus greatly aiding the debugging process.
CHESS can be used for testing concurrent software, as an alternative to stress testing.